package com.hex.ds.hdtp.core.app.data.configuration.service;

import com.hex.ds.hdtp.core.app.common.service.IBasicService;
import com.hex.ds.hdtp.core.app.data.configuration.dto.requestDto.TableConvertRequestDto;
import com.hex.ds.hdtp.core.app.data.configuration.dto.response.TableConvertResponseDto;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * @Package com.hex.ds.hdtp.core.app.preparation.service
 * @ClassName IConvertService
 * @Description 转换配置-业务服务接口
 * @Author yh.wan
 * @Date 2023/8/7 17:06
 * @Version v1.0
 **/
public interface ITableConvertService extends IBasicService<TableConvertRequestDto> {
    /**
     * @Method: batchRemoveById <br>
     * @Param: [pkIds] <br>
     * @Return: void <br>
     * @Description：批量删除<br>
     * @Author： yh.wan<br>
     * @Date： 2023/8/7 17:07 <br>
     * @Version： V1.0<br>
     */
    void batchRemoveById(List<String> pkIds);

    /**
     * @Method: download <br>
     * @Param: [request, response, pkIds, toDto] <br>
     * @Return: void <br>
     * @Description：导出<br>
     * @Author： yh.wan<br>
     * @Date： 2023/8/7 17:07 <br>
     * @Version： V1.0<br>
     */
    void download(HttpServletRequest request, HttpServletResponse response, TableConvertRequestDto convertRequestDto);

    /**
     * @Method queryList
     * @Param
     * @param tableConvertRequestDto
     * @Return java.util.List<com.hex.ds.hdtp.core.app.data.configuration.dto.response.TableConvertResponseDto>
     * @Description 不分页查询
     * @Author Wang zhihao
     * @Date 2023/8/14 20:12
     * @Version V1.0
     */
    List<TableConvertResponseDto> queryList(TableConvertRequestDto tableConvertRequestDto);

    /**
     * @param pkIds:
     * @return ByteArrayResource
     * @author Liang Fuhao
     * @description 导出转换配置
     * @date 2023/12/14 14:38
     */
    ByteArrayResource exportConvertConfig(List<String> pkIds);
    /**
     * @param file:
     * @return Map<String,Object>
     * @author Liang Fuhao
     * @description 导入转换配置
     * @date 2023/12/14 14:38
     */
    Map<String,Object> importConvertConfig(MultipartFile file);
}
